package org.huawei260.OD260;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

/**
 * @Auther: qingle
 * @Date: 2024/8/22-2:12
 * @Description:
 *删除字符串中出现次数最少的字符
 *如果多个字符出现次数一样则都删除
 *
 * 这道题太基础，训练基本功
 * 我的思路：
 * 1.统计每个字符出现的次数
 * 用一个map来统计每个字符出现的次数
 * HashMap<Character, Integer> map = new HashMap<>();
 * map.put(c, map.getOrDefault(c, 0) + 1);
 * 2.找出出现次数最少的字符的数量
 * map.values() 最小的值对应的map是哪个
 * int min = Math.MAX_VALUE;
 * for (int count : charCountMap.values()) {
 * if (count < minCount) {
 * min = count;
 }
 *1[可能遇到多个字符，用set装]
 * 3.删除出现次数最少的字符
 * Stringbuilder sb = new Stringbuilder();
 * for(map.Entry<Character, Integer> entry : map.entrySet()) {
 * if (map.entrySet() != min) {
 * sb.append(entry);
 }
 *
 *
 * 重新进行拼接
 *
 * 4.返回删除后的字符串
 * return sb.toString() == "" ? "empty" : sb.toString();
 *
 *
 * @version: 1.0
 */
public class O0017_删除最少字符_answer {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		String input = sc.nextLine();
		solution(input);
	}

	private static void solution(String line) {
		HashMap<Character, Long> map = new HashMap<>();
//		for (char c : line.toCharArray()) {
//			map.put(c, map.containsKey(c) ? map.get(c) + 1 : 1L);
//		}
		// 统计每个字符出现的次数(最常用模版☆☆☆☆☆)
		for (char c : line.toCharArray()) {
			map.put(c, map.getOrDefault(c, 0L) + 1);
		}
		// 找出出现次数最少的字符的数量
//		Long[] counts = new Long[map.values().size()];
		// 将map的值转换为数组 (☆☆☆☆☆)
		Long[] longs = map.values().toArray(new Long[0]);
		// 对数组进行排序
		Arrays.sort(longs);
		// 找出出现次数最少的字符的数量
		Long min = longs[0];
		// 删除出现次数最少的字符
		for (Map.Entry<Character, Long> entry : map.entrySet()) {
			if (entry.getValue().equals(min)) {
				line = line.replaceAll(entry.getKey() + "", "");
			}
		}

		System.out.println(line.length() == 0 ? "empty" : line);
	}

//	public static String deleteLeastCharacters(String line) {
//		Map<Character, Integer> map = new HashMap<>();
//		// 统计每个字符出现的次数
//		for (char c : line.toCharArray()) {
//			map.put(c, map.getOrDefault(c, 0) + 1);
//		}
//
//		Long[] counts = new Long[map.values().size()];
//		Long[] longs = map.values().toArray(counts);
//		Arrays.sort(longs);
//		Long min = longs[0];
//
//		for (Map.Entry<Character, Integer> entry : map.entrySet()) {
//			if (entry.getValue().equals(min)) {
//				line = line.replaceAll(entry.getKey() + "", "");
//			}
//		}
//
//		// 删除出现次数最少的字符
//		return line.length() == 0 ? "empty" : line;
//	}
}
